<?php
class MflightController extends AppController
{
	var $name = 'Mflight';
	// 使用了Quence,User,Flight,BookInfor,Plane五个Model
	var $uses = array('Quene' , 'User' , 'Flight' , 'BookInfo' , 'Plane');
	//beforeFilter 页面执行前执行
	//afterFilter 页面执行后执行
	//beforeRender 页面显示前执行
	//afterRender 页面显示后执行
	
	//显示空白页面
	function index(){}
	
	//获取所有航班信息
	function getAll()
	{
		$flight = $this->Flight->find('all');
		return $flight ;
	}
	
	//获取飞机航班信息 输入：飞机ID号 输出 ：飞机信息
	function  getPlaneInfo( $id = NULL )
	{		
		//如果有传入ID参数， 输出此飞机的信息； 否则，报错。
		if (!empty ($id))
		{
			$plane = $this->Plane->find('all', 
			array('conditions' => 
				  array('Plane.id' => $id)));
			return $plane;
		}
		else 
		{
			return false;
		}
		
	}
	
	//添加航班 
	//输入：航班号，时间，飞机型号，起飞地点，目的地，起飞时间，到达时间，
	//输入：头等舱座位，公务舱座位，经济舱座位，已定座位数
	//输出：添加成功或者失败原因
	function addFlight($flight, $time,$plane, $start,$end,
					   $start_time,  $end_time,$first_class=NULL,
					   $second_class=NULL, $third_class=NULL, $booked=NULL)
	{
		$flight= array ('Flight' =>
						 array('plane'=>$plane,
							   'flight'=>$flight,
							   'time'=>$time,							 
							   'start'=>$start,
							   'end'=>$end,
							   'start_time'=>$start_time,
							   'end_time'=>$end_time,
							   'first_class'=>$first_class,
							   'second_class'=>$second_class,
							   'third_class'=>$third_class,
							   'booked'=>$booked
							   )
						 );
		if ($this->Flight->save($flight))
		{
			return true ;
		}
		else
		{
			return false ;
		}
	}

	
	//删除航班 输入: 航班ID 输出：删除成功或者失败原因
	function delFlight($id = NULL)
	{
		if(!empty($id))
		{
			
		$this->Flight->id = $id;
		$this->Flight->del();
		return ture;
		}
		else
		{
			return false ;
		}
	}
	
	//修改航班
	//输入： 航班ID，航班号，时间，飞机，出发地，目的地，出发时间， 到达时间
    //输入： 头等舱座位信息，公务舱座位信息，经济舱座位信息，已定座位数
	//输出： 添加成功或者失败原因
	function modifyFlight( $id , $flight, $time, $plane, $start, $end, $start_time,
						  $end_time,$first_class, $second_class, $third_class, $booked)
	{
		if(!empty($id))
		{
		$this->Flight->id=$id;
		$flight = array ('Flight' =>
						 array('flight'=>$flight,
							   'time'=>$time,
							   'plane'=>$plane,
							   'start'=>$start,
							   'end'=>$end,
							   'start_time'=>start_time,
							   'first_class'=>$first_class,
							   'second_class'=>$second_class,
							   'third_class'=>$third_class,
							   'booked'=>$booked
							   )
						 );
		if ($this->Flight->save($flight))
		{
			return true ;
		}
		else
		{
			return false ;
		}
		}
		else
		{
			return 'false1';
		}
	}
	
	//获取已定座位信息
	//输入：航班ID
	//输出:以数组形式输座位出，否则输出错误
	function getBookedseat($id)  
	//通过航班ID获取flight中Booked的值
	{
		$this->Flight->id = $id;
		$booked=$this->Flight->field('booked');
		$booked1=explode(',',$booked);
		if(!empty($booked1))
		{
			return $booked1;
		}
		else
		{
			return false;
		};
	}
	
	//获取飞机所有座位信息
	//输入：航班ID
	//输出：以数组形式输座位出，否则输出错误
	function getAllseat($id)
	//通过航班ID获取plane的值，传递到model‘Plane’中
	//通过访问'Plane',获取其头等舱座位情况，公务舱座位情况，
	//经济舱座位情况存储于3个数组中.然后将3个一维数组合并成三维数组
	//输出所对应航班ID的飞机所有座位的信息
	{
		$this->Flight->id = $id;
		$planeID= (int)$this->Flight->field('plane');

		 $plane = $this->Plane->find('all', 
			array(
			    'conditions' => array
				(
				    'Plane.id' => $planeID
				)
				)
			);

		$booked1 = $plane[0]['Plane']['first_info'];
		$booked2 = $plane[0]['Plane']['second_info'];
		$booked3 = $plane[0]['Plane']['third_info'];
		$first_info1=explode(',',$booked1);
		$first_info2=explode(',',$booked2);
		$first_info3=explode(',',$booked3);
		
		$all_info=array_merge($first_info1,$first_info2,$first_info3);
		return $all_info;
	}
	
	function shuxue($a,$b)
	{

       return($a-$b);
	 }

	//获取飞机剩余座位信息
	//输入：航班ID
	//输出:以数组输出飞机剩余座位，否则报错
	function getRemainseat($id)
	{
		$ID=$id;
		$a=$this->getBookedseat($ID);
		
		
		$Allseat=$this->getAllseat($ID);
        
		
        $i = count($a);
		$j = count($Allseat);
		
        for($k = 0; $k < $i; $k++){
			for($h = 0; $h < $j; $h++){
				if($Allseat[$h] == $a[$k])
				    unset($Allseat[$h]);
			}
		}
        
		$result = array();
		$m = 0;
		
		for( $ix = 0; $ix < $j; $ix ++ )
		{
			if( $Allseat[$ix] != null )
			{
				$result[$m]['label'] = $Allseat[$ix];
				$m ++ ;
			}
		}

		return $result;
        
	}
		
}
?>
